"""
Gotenberg 配置

Gotenberg 是一个基于 Docker 的文档转换 API 服务，支持将 Word、Excel 等文档转换为 PDF。
官网: https://gotenberg.dev/
"""

from pydantic_settings import BaseSettings
from functools import lru_cache


class GotenbergConfig(BaseSettings):
    """Gotenberg 服务配置"""
    
    # Gotenberg 服务地址
    gotenberg_server_url: str = "http://101.126.54.157:7582"
    
    # 转换超时时间（秒）
    gotenberg_timeout: int = 60
    
    # 是否启用 Gotenberg（如果服务不可用，可以禁用）
    gotenberg_enabled: bool = True
    
    # PDF/A 格式（可选：PDF/A-1a, PDF/A-1b, PDF/A-2b, PDF/A-3b）
    # 留空则生成普通 PDF
    gotenberg_pdfa_format: str = ""
    
    # 是否合并多个文件
    gotenberg_merge: bool = False
    
    # 横向打印
    gotenberg_landscape: bool = False
    
    # 纸张尺寸（例如：A4, Letter）
    gotenberg_page_ranges: str = ""
    
    class Config:
        env_file = ".env"
        env_file_encoding = "utf-8"
        case_sensitive = False


@lru_cache()
def get_gotenberg_config() -> GotenbergConfig:
    """
    获取 Gotenberg 配置（单例模式）
    
    Returns:
        GotenbergConfig: Gotenberg 配置对象
    """
    return GotenbergConfig()



